#import library
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import os
import scipy.stats as sts
%matplotlib inline
os.getcwd() #directory
ls
df_train = pd.read_csv('train_predictdata.csv') #reading csv file
df_train.head() # first row of the dataset
df_train.columns
df_train.dtypes
df_train.describe(include=['float64']) #get summary of numerical variables
df_train['Credit_History'].value_counts()
df_train['Loan_Status'].value_counts(normalize=True)
df_train['Loan_Status'].value_counts().plot.bar()
?plt.bar
df_train.describe(include=['object']) #get summary of categorical variables
df_train.columns
#Apply Function
#Create a new function:
def num_missing(x):
return sum(x.isnull())
#Applying per column:
print("Missing values per column:")
print(df_train.apply(num_missing, axis=0)) #axis=0 defines that function is to be applied on each column
temp1 = df_train['Credit_History'].value_counts(ascending=True)
temp2 = df_train.pivot_table(values='Loan_Status',index=['Credit_History'],aggfunc=lambda x: x.map({'Y':1,'N':0}).mean())
print('Frequency Table for Credit History:\n %s' %(temp1))
# print temp1
print('\nProbility of getting loan for each Credit History class:')
print(temp2)
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(8,4))
ax1 = fig.add_subplot(121)
ax1.set_xlabel('Credit_History')
ax1.set_ylabel('Count of Applicants')
ax1.set_title("Applicants by Credit_History")
temp1.plot(kind='bar')
ax2 = fig.add_subplot(122)
temp2.plot(kind = 'bar')
ax2.set_xlabel('Credit_History')
ax2.set_ylabel('Probability of getting loan')
ax2.set_title("Probability of getting loan by credit history")
temp3 = pd.crosstab(df_train['Credit_History'], df_train['Loan_Status'])
temp3.plot(kind='bar', stacked=True, color=['red','blue'], grid=False)
table = df_train.pivot_table(values='LoanAmount', index='Self_Employed' ,columns='Education', aggfunc=np.median)
table
df_train.columns